package org.jeecg.common.util;

import org.apache.commons.beanutils.BeanMap;
import java.util.HashMap;
import java.util.Map;

public class ObjectToMapTransformer {

        /**
         * 将 Java 对象转换为 Map（使用 BeanMap）
         * @param obj 要转换的对象
         * @return 包含对象属性的 Map
         */
        public static Map<String, Object> transform(Object obj) {
            if (obj == null) {
                return null;
            }

            // 如果对象本身就是 Map，直接返回或复制
            if (obj instanceof Map) {
                return new HashMap<>((Map<String, Object>) obj);
            }

            // 使用 BeanMap 转换 JavaBean
            Map<String, Object> result = new HashMap<>();
            BeanMap beanMap = new BeanMap(obj);

            // 遍历 BeanMap 中的属性
            for (Object key : beanMap.keySet()) {
                String propertyName = key.toString();
                // 排除类本身（BeanMap 默认会包含 class 属性）
                if (!"class".equals(propertyName)) {
                    result.put(propertyName, beanMap.get(propertyName));
                }
            }

            return result;
        }

    }
